<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Flow-IPC: ipc::session::shm::arena_lend::jemalloc::Server_session&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">Flow-IPC<span id="projectnumber">&#160;2.0.0</span>
   </div>
   <div id="projectbrief">Flow-IPC project: Public API.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceipc.html">ipc</a></li><li class="navelem"><a class="el" href="namespaceipc_1_1session.html">session</a></li><li class="navelem"><a class="el" href="namespaceipc_1_1session_1_1shm.html">shm</a></li><li class="navelem"><a class="el" href="namespaceipc_1_1session_1_1shm_1_1arena__lend.html">arena_lend</a></li><li class="navelem"><a class="el" href="namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html">jemalloc</a></li><li class="navelem"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html">Server_session</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#related">Related Functions</a> &#124;
<a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">ipc::session::shm::arena_lend::jemalloc::Server_session&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; Class Template Reference</div></div>
</div><!--header-->
<div class="contents">

<p>Identical to <a class="el" href="namespaceipc_1_1session.html#ab01d5bce0ab2f3435ca9dd88d27609dc" title="A vanilla Server_session with no optional capabilities.">session::Server_session</a> in every way, except that it makes available two SHM arenas, from the SHM-jemalloc provider (ipc::shm::arena_lend::jemalloc).  
 <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#details">More...</a></p>

<p><code>#include &lt;server_session.hpp&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ipc::session::shm::arena_lend::jemalloc::Server_session&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__inherit__graph.svg" width="1015" height="107"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for ipc::session::shm::arena_lend::jemalloc::Server_session&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__coll__graph.svg" width="1015" height="107"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:aee0d5c20c166905ba0d915e182cb7e13"><td class="memItemLeft" align="right" valign="top"><a id="aee0d5c20c166905ba0d915e182cb7e13" name="aee0d5c20c166905ba0d915e182cb7e13"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Base</b> = <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html">Session_mv</a>&lt; <a class="el" href="classipc_1_1session_1_1Server__session__mv.html">session::Server_session_mv</a>&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt; &gt;</td></tr>
<tr class="memdesc:aee0d5c20c166905ba0d915e182cb7e13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for our base class. To the user: note its <code>public</code> API is inherited. <br /></td></tr>
<tr class="separator:aee0d5c20c166905ba0d915e182cb7e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a988281add5dc4a31202cfba47f458e5a"><td class="memItemLeft" align="right" valign="top"><a id="a988281add5dc4a31202cfba47f458e5a" name="a988281add5dc4a31202cfba47f458e5a"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Arena</b> = typename <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae30ae4b65cd4178fa26eed660688829f">Base::Arena</a></td></tr>
<tr class="memdesc:a988281add5dc4a31202cfba47f458e5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base class member alias <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae30ae4b65cd4178fa26eed660688829f" title="The arena object on which one may call construct&lt;T&gt;(ctor_args...), where ctor_args are arguments to t...">Session_mv::Arena</a>. Its doc header contains useful context and tips. <br /></td></tr>
<tr class="separator:a988281add5dc4a31202cfba47f458e5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7de5ec3e9331c46664a493e060edb6f6"><td class="memItemLeft" align="right" valign="top"><a id="a7de5ec3e9331c46664a493e060edb6f6" name="a7de5ec3e9331c46664a493e060edb6f6"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Structured_msg_builder_config</b> = typename <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#aaf1b1ad45b96d49c4c86e234a656f01b">Base::Structured_msg_builder_config</a></td></tr>
<tr class="memdesc:a7de5ec3e9331c46664a493e060edb6f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base class member alias <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#aaf1b1ad45b96d49c4c86e234a656f01b" title="Implements Session API per contract.">Session_mv::Structured_msg_builder_config</a>. <br /></td></tr>
<tr class="separator:a7de5ec3e9331c46664a493e060edb6f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html">ipc::session::shm::arena_lend::jemalloc::Session_mv&lt; session::Server_session_mv&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt; &gt;</a></td></tr>
<tr class="memitem:a6c0160faae9e8a9c880b6f78fafb428c inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a id="a6c0160faae9e8a9c880b6f78fafb428c" name="a6c0160faae9e8a9c880b6f78fafb428c"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Base</b> = <a class="el" href="classipc_1_1session_1_1Server__session__mv.html">session::Server_session_mv</a>&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt;</td></tr>
<tr class="memdesc:a6c0160faae9e8a9c880b6f78fafb428c inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for our base class. To the user: note its <code>public</code> API is inherited. <br /></td></tr>
<tr class="separator:a6c0160faae9e8a9c880b6f78fafb428c inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae30ae4b65cd4178fa26eed660688829f inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae30ae4b65cd4178fa26eed660688829f">Arena</a> = typename Base::Base::Impl::Arena</td></tr>
<tr class="memdesc:ae30ae4b65cd4178fa26eed660688829f inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">The arena object on which one may call <code>construct&lt;T&gt;(ctor_args...)</code>, where <code>ctor_args</code> are arguments to the <code>T::T()</code> constructor.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae30ae4b65cd4178fa26eed660688829f">More...</a><br /></td></tr>
<tr class="separator:ae30ae4b65cd4178fa26eed660688829f inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad63c175a57f314c1ed3d4a78329030cd inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ad63c175a57f314c1ed3d4a78329030cd">Shm_session</a> = jemalloc::Shm_session</td></tr>
<tr class="memdesc:ad63c175a57f314c1ed3d4a78329030cd inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">The lend/borrow engine type which allows one to "lend" a <code>T</code> (obtained via <code>Arena::construct&lt;T&gt;()</code>) to the opposing process, ahead of transmitting the object over a channel obtained from <code>*this</code> session.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ad63c175a57f314c1ed3d4a78329030cd">More...</a><br /></td></tr>
<tr class="separator:ad63c175a57f314c1ed3d4a78329030cd inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbb009e31853d3222a1614535ce401b7 inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#abbb009e31853d3222a1614535ce401b7">Allocator</a> = <a class="el" href="classipc_1_1shm_1_1stl_1_1Stateless__allocator.html">ipc::shm::stl::Stateless_allocator</a>&lt; T, <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae30ae4b65cd4178fa26eed660688829f">Arena</a> &gt;</td></tr>
<tr class="memdesc:abbb009e31853d3222a1614535ce401b7 inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience alias to be used in STL-compliant <code>T</code>s with <code>"Arena::construct&lt;T&gt;()"</code>, our own <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a1346f63d338304a20bef43d3c93c7562" title="Adds an owner process to the owner set of the given Arena::construct()-ed handle; and returns an opaq...">lend_object&lt;T&gt;()</a>, and <code>"Shm_session::lend_object&lt;T&gt;()"</code>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#abbb009e31853d3222a1614535ce401b7">More...</a><br /></td></tr>
<tr class="separator:abbb009e31853d3222a1614535ce401b7 inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae32bce4c9889325f38d7d6f902efe4e8 inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae32bce4c9889325f38d7d6f902efe4e8">Borrower_allocator</a> = <a class="el" href="classipc_1_1shm_1_1stl_1_1Stateless__allocator.html">ipc::shm::stl::Stateless_allocator</a>&lt; T, <a class="el" href="namespaceipc_1_1shm.html#a6c8474d5b7dda220ed1f6693fc2e3c89">ipc::shm::Arena_to_borrower_allocator_arena_t</a>&lt; <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae30ae4b65cd4178fa26eed660688829f">Arena</a> &gt; &gt;</td></tr>
<tr class="memdesc:ae32bce4c9889325f38d7d6f902efe4e8 inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience alias to be used in STL-compliant <code>T</code>s with our own <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a7880b205b076ddd46537826d3b2028e9" title="Completes the cross-process operation begun by oppsing Session_mv::lend_object() that returned serial...">borrow_object&lt;T&gt;()</a> and <code>"Shm_session::borrow_object&lt;T&gt;()"</code>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae32bce4c9889325f38d7d6f902efe4e8">More...</a><br /></td></tr>
<tr class="separator:ae32bce4c9889325f38d7d6f902efe4e8 inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44555ea9786408cd39652d45758bcabc inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a44555ea9786408cd39652d45758bcabc">Structured_channel</a> = typename <a class="el" href="namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend_1_1jemalloc.html#ab68a69ad42d97d754f4e77c8cadd3a5e">transport::struc::shm::arena_lend::jemalloc::Channel</a>&lt; typename <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2">Base::Base::Impl::Session_base_obj::Channel_obj</a>, Message_body &gt;</td></tr>
<tr class="memdesc:a44555ea9786408cd39652d45758bcabc inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a44555ea9786408cd39652d45758bcabc">More...</a><br /></td></tr>
<tr class="separator:a44555ea9786408cd39652d45758bcabc inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf1b1ad45b96d49c4c86e234a656f01b inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#aaf1b1ad45b96d49c4c86e234a656f01b">Structured_msg_builder_config</a> = typename <a class="el" href="classipc_1_1session_1_1Session__mv.html#a9f6e9a57f6e6ab420d554a2c0eba7877">Base::Base::Impl::Structured_msg_builder_config</a></td></tr>
<tr class="memdesc:aaf1b1ad45b96d49c4c86e234a656f01b inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#aaf1b1ad45b96d49c4c86e234a656f01b">More...</a><br /></td></tr>
<tr class="separator:aaf1b1ad45b96d49c4c86e234a656f01b inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50304d6dba4a332952aee67dc37598d0 inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a50304d6dba4a332952aee67dc37598d0">Structured_msg_reader_config</a> = typename <a class="el" href="classipc_1_1session_1_1Session__mv.html#a335c3585402cc9430f8c909e8c7e55f4">Base::Base::Impl::Structured_msg_reader_config</a></td></tr>
<tr class="memdesc:a50304d6dba4a332952aee67dc37598d0 inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a50304d6dba4a332952aee67dc37598d0">More...</a><br /></td></tr>
<tr class="separator:a50304d6dba4a332952aee67dc37598d0 inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add76f1d323854ec7be266a255a4f0073 inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a id="add76f1d323854ec7be266a255a4f0073" name="add76f1d323854ec7be266a255a4f0073"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Blob</b> = typename Base::Base::Impl::Blob</td></tr>
<tr class="memdesc:add76f1d323854ec7be266a255a4f0073 inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for a light-weight blob used in <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a7880b205b076ddd46537826d3b2028e9" title="Completes the cross-process operation begun by oppsing Session_mv::lend_object() that returned serial...">borrow_object()</a> and <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a1346f63d338304a20bef43d3c93c7562" title="Adds an owner process to the owner set of the given Arena::construct()-ed handle; and returns an opaq...">lend_object()</a>. <br /></td></tr>
<tr class="separator:add76f1d323854ec7be266a255a4f0073 inherit pub_types_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classipc_1_1session_1_1Server__session__mv"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classipc_1_1session_1_1Server__session__mv')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classipc_1_1session_1_1Server__session__mv.html">ipc::session::Server_session_mv&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt;</a></td></tr>
<tr class="memitem:a17a6288bac54ea18317582121ed8e10d inherit pub_types_classipc_1_1session_1_1Server__session__mv"><td class="memItemLeft" align="right" valign="top"><a id="a17a6288bac54ea18317582121ed8e10d" name="a17a6288bac54ea18317582121ed8e10d"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Base</b> = <a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a>&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt;</td></tr>
<tr class="memdesc:a17a6288bac54ea18317582121ed8e10d inherit pub_types_classipc_1_1session_1_1Server__session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for our base class. To the user: note its <code>public</code> API is inherited. <br /></td></tr>
<tr class="separator:a17a6288bac54ea18317582121ed8e10d inherit pub_types_classipc_1_1session_1_1Server__session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classipc_1_1session_1_1Session__mv"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classipc_1_1session_1_1Session__mv')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt;</a></td></tr>
<tr class="memitem:ab92df09d894e6e1aaf3c2733da594fd2 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2">Channel_obj</a> = typename Impl::Channel_obj</td></tr>
<tr class="memdesc:ab92df09d894e6e1aaf3c2733da594fd2 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2">More...</a><br /></td></tr>
<tr class="separator:ab92df09d894e6e1aaf3c2733da594fd2 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af87da439644b2afd73d6a13d97e7985f inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a id="af87da439644b2afd73d6a13d97e7985f" name="af87da439644b2afd73d6a13d97e7985f"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Channels</b> = typename Impl::Channels</td></tr>
<tr class="memdesc:af87da439644b2afd73d6a13d97e7985f inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Container (<code>vector&lt;&gt;</code>) of <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a>. <br /></td></tr>
<tr class="separator:af87da439644b2afd73d6a13d97e7985f inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acccbc643f29f002075e66cd134da70bd inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#acccbc643f29f002075e66cd134da70bd">Mdt_payload_obj</a> = typename Impl::Mdt_payload_obj</td></tr>
<tr class="memdesc:acccbc643f29f002075e66cd134da70bd inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#acccbc643f29f002075e66cd134da70bd">More...</a><br /></td></tr>
<tr class="separator:acccbc643f29f002075e66cd134da70bd inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af10f452e602e4ea7389c6a77dd9a0f88 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#af10f452e602e4ea7389c6a77dd9a0f88">Mdt_builder</a> = typename Impl::Mdt_builder</td></tr>
<tr class="memdesc:af10f452e602e4ea7389c6a77dd9a0f88 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#af10f452e602e4ea7389c6a77dd9a0f88">More...</a><br /></td></tr>
<tr class="separator:af10f452e602e4ea7389c6a77dd9a0f88 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a787253f02859ea6b99ce3eba92766431 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a787253f02859ea6b99ce3eba92766431">Mdt_builder_ptr</a> = typename Impl::Mdt_builder_ptr</td></tr>
<tr class="memdesc:a787253f02859ea6b99ce3eba92766431 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a787253f02859ea6b99ce3eba92766431">More...</a><br /></td></tr>
<tr class="separator:a787253f02859ea6b99ce3eba92766431 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b1215fb0c9738b9fcfbb337d23c43df inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a2b1215fb0c9738b9fcfbb337d23c43df">Mdt_reader_ptr</a> = typename Impl::Mdt_reader_ptr</td></tr>
<tr class="memdesc:a2b1215fb0c9738b9fcfbb337d23c43df inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a2b1215fb0c9738b9fcfbb337d23c43df">More...</a><br /></td></tr>
<tr class="separator:a2b1215fb0c9738b9fcfbb337d23c43df inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac205819d4a3a066f31b5af311ff40a2a inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ac205819d4a3a066f31b5af311ff40a2a">Structured_channel</a> = typename <a class="el" href="namespaceipc_1_1transport_1_1struc.html#aca041b0efd4a9ae18e10088b2ee3c052">transport::struc::Channel_via_heap</a>&lt; <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2">Channel_obj</a>, Message_body &gt;</td></tr>
<tr class="memdesc:ac205819d4a3a066f31b5af311ff40a2a inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#ac205819d4a3a066f31b5af311ff40a2a">More...</a><br /></td></tr>
<tr class="separator:ac205819d4a3a066f31b5af311ff40a2a inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f6e9a57f6e6ab420d554a2c0eba7877 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a9f6e9a57f6e6ab420d554a2c0eba7877">Structured_msg_builder_config</a> = typename Impl::Structured_msg_builder_config</td></tr>
<tr class="memdesc:a9f6e9a57f6e6ab420d554a2c0eba7877 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a9f6e9a57f6e6ab420d554a2c0eba7877">More...</a><br /></td></tr>
<tr class="separator:a9f6e9a57f6e6ab420d554a2c0eba7877 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a335c3585402cc9430f8c909e8c7e55f4 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a335c3585402cc9430f8c909e8c7e55f4">Structured_msg_reader_config</a> = typename Impl::Structured_msg_builder_config</td></tr>
<tr class="memdesc:a335c3585402cc9430f8c909e8c7e55f4 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a335c3585402cc9430f8c909e8c7e55f4">More...</a><br /></td></tr>
<tr class="separator:a335c3585402cc9430f8c909e8c7e55f4 inherit pub_types_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a20d4838f6ff705bd2ad33de066ae2d4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a988281add5dc4a31202cfba47f458e5a">Arena</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a20d4838f6ff705bd2ad33de066ae2d4d">app_shm</a> ()</td></tr>
<tr class="memdesc:a20d4838f6ff705bd2ad33de066ae2d4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns SHM <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a988281add5dc4a31202cfba47f458e5a" title="Short-hand for base class member alias Session_mv::Arena. Its doc header contains useful context and ...">Arena</a> with per-app scope, meaning its pool shall be accessible potentially beyond the lifetime of this session but rather until the generating <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html" title="This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server...">Session_server</a> (i.e., server process) shuts down, by any <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> under that umbrella, now or in the future, as long as its <a class="el" href="structipc_1_1session_1_1Client__app.html" title="An App that is used as a client in at least one client-server IPC split.">Client_app</a> equals that of <code>*this</code> session.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a20d4838f6ff705bd2ad33de066ae2d4d">More...</a><br /></td></tr>
<tr class="separator:a20d4838f6ff705bd2ad33de066ae2d4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a841ce582dbb9084c7dc934f0d2fbb757"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a988281add5dc4a31202cfba47f458e5a">Arena</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a841ce582dbb9084c7dc934f0d2fbb757">app_shm_ptr</a> ()</td></tr>
<tr class="memdesc:a841ce582dbb9084c7dc934f0d2fbb757"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identical to <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a20d4838f6ff705bd2ad33de066ae2d4d" title="Returns SHM Arena with per-app scope, meaning its pool shall be accessible potentially beyond the lif...">app_shm()</a> but returns that via a <code>shared_ptr</code>-handle as required for work directly within ipc::shm::arena_lend::jemalloc APIs.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a841ce582dbb9084c7dc934f0d2fbb757">More...</a><br /></td></tr>
<tr class="separator:a841ce582dbb9084c7dc934f0d2fbb757"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26c1d34c7be1002cc9fc8ae9eeae8164"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a7de5ec3e9331c46664a493e060edb6f6">Structured_msg_builder_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a26c1d34c7be1002cc9fc8ae9eeae8164">app_shm_builder_config</a> ()</td></tr>
<tr class="memdesc:a26c1d34c7be1002cc9fc8ae9eeae8164"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns builder config suitable for capnp-serializing out-messages in SHM arena <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a20d4838f6ff705bd2ad33de066ae2d4d" title="Returns SHM Arena with per-app scope, meaning its pool shall be accessible potentially beyond the lif...">app_shm()</a>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a26c1d34c7be1002cc9fc8ae9eeae8164">More...</a><br /></td></tr>
<tr class="separator:a26c1d34c7be1002cc9fc8ae9eeae8164"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9ce191cc25d67c6c098ea56849ef2d5"><td class="memItemLeft" align="right" valign="top">Structured_msg_builder_config::Builder::Session&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#af9ce191cc25d67c6c098ea56849ef2d5">app_shm_lender_session</a> ()</td></tr>
<tr class="memdesc:af9ce191cc25d67c6c098ea56849ef2d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">When transmitting items originating in <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a988281add5dc4a31202cfba47f458e5a" title="Short-hand for base class member alias Session_mv::Arena. Its doc header contains useful context and ...">Arena</a> <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a20d4838f6ff705bd2ad33de066ae2d4d" title="Returns SHM Arena with per-app scope, meaning its pool shall be accessible potentially beyond the lif...">app_shm()</a> via <a class="el" href="classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html#a7909a2d1e1d24037fb8af5338fffa783" title="Implements concept API.">transport::struc::shm::Builder::emit_serialization()</a> (and/or <a class="el" href="classipc_1_1transport_1_1struc_1_1Channel.html" title="Owning and wrapping a pre-connected transport::Channel peer (an endpoint of an established channel ov...">transport::struc::Channel</a> send facilities), returns additional-to-payload information necessary to target the opposing process properly.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#af9ce191cc25d67c6c098ea56849ef2d5">More...</a><br /></td></tr>
<tr class="separator:af9ce191cc25d67c6c098ea56849ef2d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html">ipc::session::shm::arena_lend::jemalloc::Session_mv&lt; session::Server_session_mv&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt; &gt;</a></td></tr>
<tr class="memitem:a361c867d10a255ff62cdb19b75fc0a18 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae30ae4b65cd4178fa26eed660688829f">Arena</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a361c867d10a255ff62cdb19b75fc0a18">session_shm</a> ()</td></tr>
<tr class="memdesc:a361c867d10a255ff62cdb19b75fc0a18 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns SHM <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae30ae4b65cd4178fa26eed660688829f" title="The arena object on which one may call construct&lt;T&gt;(ctor_args...), where ctor_args are arguments to t...">Arena</a> with per-session scope, meaning it shall be accessible only during the lifetime of this session, by this Session (via this accessor).  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a361c867d10a255ff62cdb19b75fc0a18">More...</a><br /></td></tr>
<tr class="separator:a361c867d10a255ff62cdb19b75fc0a18 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8465d440f480f57ceda2734def8c39fa inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae30ae4b65cd4178fa26eed660688829f">Arena</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a8465d440f480f57ceda2734def8c39fa">session_shm_ptr</a> ()</td></tr>
<tr class="memdesc:a8465d440f480f57ceda2734def8c39fa inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identical to <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a361c867d10a255ff62cdb19b75fc0a18" title="Returns SHM Arena with per-session scope, meaning it shall be accessible only during the lifetime of ...">session_shm()</a> but returns that via a <code>shared_ptr</code>-handle as required for work directly within ipc::shm::arena_lend::jemalloc APIs.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a8465d440f480f57ceda2734def8c39fa">More...</a><br /></td></tr>
<tr class="separator:a8465d440f480f57ceda2734def8c39fa inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1346f63d338304a20bef43d3c93c7562 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#add76f1d323854ec7be266a255a4f0073">Blob</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a1346f63d338304a20bef43d3c93c7562">lend_object</a> (const typename Arena::template Handle&lt; T &gt; &amp;handle)</td></tr>
<tr class="memdesc:a1346f63d338304a20bef43d3c93c7562 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an owner process to the owner set of the given <code>Arena::construct()</code>-ed handle; and returns an opaque blob, such that if one passes it to opposing Session_mv::borrow_object() in the receiving process, that <code><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a7880b205b076ddd46537826d3b2028e9" title="Completes the cross-process operation begun by oppsing Session_mv::lend_object() that returned serial...">borrow_object()</a></code> shall return an equivalent <code>Handle</code> in that process.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a1346f63d338304a20bef43d3c93c7562">More...</a><br /></td></tr>
<tr class="separator:a1346f63d338304a20bef43d3c93c7562 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7880b205b076ddd46537826d3b2028e9 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">Arena::template Handle&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a7880b205b076ddd46537826d3b2028e9">borrow_object</a> (const <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#add76f1d323854ec7be266a255a4f0073">Blob</a> &amp;serialization)</td></tr>
<tr class="memdesc:a7880b205b076ddd46537826d3b2028e9 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Completes the cross-process operation begun by oppsing Session_mv::lend_object() that returned <code>serialization</code>; to be invoked in the intended new owner process which is operating <code>*this</code>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a7880b205b076ddd46537826d3b2028e9">More...</a><br /></td></tr>
<tr class="separator:a7880b205b076ddd46537826d3b2028e9 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad00593f745b49c41fa446bdf4250f2e9 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a9f6e9a57f6e6ab420d554a2c0eba7877">Structured_msg_builder_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ad00593f745b49c41fa446bdf4250f2e9">session_shm_builder_config</a> ()</td></tr>
<tr class="memdesc:ad00593f745b49c41fa446bdf4250f2e9 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns builder config suitable for capnp-serializing out-messages in SHM arena <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a361c867d10a255ff62cdb19b75fc0a18" title="Returns SHM Arena with per-session scope, meaning it shall be accessible only during the lifetime of ...">session_shm()</a>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ad00593f745b49c41fa446bdf4250f2e9">More...</a><br /></td></tr>
<tr class="separator:ad00593f745b49c41fa446bdf4250f2e9 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4d3c3831486cb32b3a81b5783891d7d inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">Structured_msg_builder_config::Builder::Session&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ac4d3c3831486cb32b3a81b5783891d7d">session_shm_lender_session</a> ()</td></tr>
<tr class="memdesc:ac4d3c3831486cb32b3a81b5783891d7d inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">When transmitting items originating in <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae30ae4b65cd4178fa26eed660688829f" title="The arena object on which one may call construct&lt;T&gt;(ctor_args...), where ctor_args are arguments to t...">Arena</a> <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a361c867d10a255ff62cdb19b75fc0a18" title="Returns SHM Arena with per-session scope, meaning it shall be accessible only during the lifetime of ...">session_shm()</a> via transport::struc::shm::Builder::emit_serialization()(and/or transport::struc::Channel send facilities), returns additional-to-payload information necessary to target the opposing process properly.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ac4d3c3831486cb32b3a81b5783891d7d">More...</a><br /></td></tr>
<tr class="separator:ac4d3c3831486cb32b3a81b5783891d7d inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6385f523cd5de727b305e9b165b94ad5 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a335c3585402cc9430f8c909e8c7e55f4">Structured_msg_reader_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a6385f523cd5de727b305e9b165b94ad5">session_shm_reader_config</a> ()</td></tr>
<tr class="memdesc:a6385f523cd5de727b305e9b165b94ad5 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a74813622394c2876c4e3a93c2071f412" title="Returns reader config that can be used to deserialize any transport::struc::Msg_in to have arrived fr...">shm_reader_config()</a>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a6385f523cd5de727b305e9b165b94ad5">More...</a><br /></td></tr>
<tr class="separator:a6385f523cd5de727b305e9b165b94ad5 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29402234e4b12daa9796687a310a176d inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a335c3585402cc9430f8c909e8c7e55f4">Structured_msg_reader_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a29402234e4b12daa9796687a310a176d">app_shm_reader_config</a> ()</td></tr>
<tr class="memdesc:a29402234e4b12daa9796687a310a176d inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a74813622394c2876c4e3a93c2071f412" title="Returns reader config that can be used to deserialize any transport::struc::Msg_in to have arrived fr...">shm_reader_config()</a>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a29402234e4b12daa9796687a310a176d">More...</a><br /></td></tr>
<tr class="separator:a29402234e4b12daa9796687a310a176d inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abde9667974bac936135e6a826e856f9a inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ad63c175a57f314c1ed3d4a78329030cd">Shm_session</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#abde9667974bac936135e6a826e856f9a">shm_session</a> ()</td></tr>
<tr class="memdesc:abde9667974bac936135e6a826e856f9a inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns lend/borrow engine <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ad63c175a57f314c1ed3d4a78329030cd" title="The lend/borrow engine type which allows one to &quot;lend&quot; a T (obtained via Arena::construct&lt;T&gt;()) to th...">Shm_session</a> for <code>*this</code> session.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#abde9667974bac936135e6a826e856f9a">More...</a><br /></td></tr>
<tr class="separator:abde9667974bac936135e6a826e856f9a inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74813622394c2876c4e3a93c2071f412 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a335c3585402cc9430f8c909e8c7e55f4">Structured_msg_reader_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a74813622394c2876c4e3a93c2071f412">shm_reader_config</a> ()</td></tr>
<tr class="memdesc:a74813622394c2876c4e3a93c2071f412 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reader config that can be used to deserialize any transport::struc::Msg_in to have arrived from the opposing process in <code>*this</code> session.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a74813622394c2876c4e3a93c2071f412">More...</a><br /></td></tr>
<tr class="separator:a74813622394c2876c4e3a93c2071f412 inherit pub_methods_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classipc_1_1session_1_1Server__session__mv"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classipc_1_1session_1_1Server__session__mv')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classipc_1_1session_1_1Server__session__mv.html">ipc::session::Server_session_mv&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt;</a></td></tr>
<tr class="memitem:ac873543383b7a6da94d4353231f34ec2 inherit pub_methods_classipc_1_1session_1_1Server__session__mv"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structipc_1_1session_1_1Client__app.html">Client_app</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Server__session__mv.html#ac873543383b7a6da94d4353231f34ec2">client_app</a> () const</td></tr>
<tr class="memdesc:ac873543383b7a6da94d4353231f34ec2 inherit pub_methods_classipc_1_1session_1_1Server__session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">The opposing application is described by a Client_app; this is that description.  <a href="classipc_1_1session_1_1Server__session__mv.html#ac873543383b7a6da94d4353231f34ec2">More...</a><br /></td></tr>
<tr class="separator:ac873543383b7a6da94d4353231f34ec2 inherit pub_methods_classipc_1_1session_1_1Server__session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99097e5aa6883877c74f8a93ebc9f3e1 inherit pub_methods_classipc_1_1session_1_1Server__session__mv"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Server__session__mv.html#a99097e5aa6883877c74f8a93ebc9f3e1">init_handlers</a> (Task_err &amp;&amp;on_err_func_arg, On_passive_open_channel_handler &amp;&amp;on_passive_open_channel_func_arg)</td></tr>
<tr class="memdesc:a99097e5aa6883877c74f8a93ebc9f3e1 inherit pub_methods_classipc_1_1session_1_1Server__session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">To be invoked by public user upon first obtaining <code>*this</code>: memorizes the given on-error and on-passive-open handlers thus moving this Server_session_mv to PEER state wherein it is a formal Session concept impl.  <a href="classipc_1_1session_1_1Server__session__mv.html#a99097e5aa6883877c74f8a93ebc9f3e1">More...</a><br /></td></tr>
<tr class="separator:a99097e5aa6883877c74f8a93ebc9f3e1 inherit pub_methods_classipc_1_1session_1_1Server__session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1ea393b9d0d7de60f7433cbc7dad0d4 inherit pub_methods_classipc_1_1session_1_1Server__session__mv"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Server__session__mv.html#ac1ea393b9d0d7de60f7433cbc7dad0d4">init_handlers</a> (Task_err &amp;&amp;on_err_func_arg)</td></tr>
<tr class="memdesc:ac1ea393b9d0d7de60f7433cbc7dad0d4 inherit pub_methods_classipc_1_1session_1_1Server__session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alternative to the other <a class="el" href="classipc_1_1session_1_1Server__session__mv.html#a99097e5aa6883877c74f8a93ebc9f3e1" title="To be invoked by public user upon first obtaining *this: memorizes the given on-error and on-passive-...">init_handlers()</a>.  <a href="classipc_1_1session_1_1Server__session__mv.html#ac1ea393b9d0d7de60f7433cbc7dad0d4">More...</a><br /></td></tr>
<tr class="separator:ac1ea393b9d0d7de60f7433cbc7dad0d4 inherit pub_methods_classipc_1_1session_1_1Server__session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classipc_1_1session_1_1Session__mv"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classipc_1_1session_1_1Session__mv')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt;</a></td></tr>
<tr class="memitem:af964cb260766684d46503b43d0faa777 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#af964cb260766684d46503b43d0faa777">Session_mv</a> ()</td></tr>
<tr class="memdesc:af964cb260766684d46503b43d0faa777 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#af964cb260766684d46503b43d0faa777">More...</a><br /></td></tr>
<tr class="separator:af964cb260766684d46503b43d0faa777 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1cffabdbc41809399b4bda9330f5367 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ad1cffabdbc41809399b4bda9330f5367">Session_mv</a> (<a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:ad1cffabdbc41809399b4bda9330f5367 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#ad1cffabdbc41809399b4bda9330f5367">More...</a><br /></td></tr>
<tr class="separator:ad1cffabdbc41809399b4bda9330f5367 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1293a6369b78d12bad869ca812be0f74 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a id="a1293a6369b78d12bad869ca812be0f74" name="a1293a6369b78d12bad869ca812be0f74"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Session_mv</b> (const <a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a> &amp;)=delete</td></tr>
<tr class="memdesc:a1293a6369b78d12bad869ca812be0f74 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy ction is disallowed. <br /></td></tr>
<tr class="separator:a1293a6369b78d12bad869ca812be0f74 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b4f0cdde3221b0922e0b44cbb6011a2 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a0b4f0cdde3221b0922e0b44cbb6011a2">~Session_mv</a> ()</td></tr>
<tr class="memdesc:a0b4f0cdde3221b0922e0b44cbb6011a2 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a0b4f0cdde3221b0922e0b44cbb6011a2">More...</a><br /></td></tr>
<tr class="separator:a0b4f0cdde3221b0922e0b44cbb6011a2 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac000e14183b5dcb523ff0eaaf030968c inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ac000e14183b5dcb523ff0eaaf030968c">operator=</a> (<a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:ac000e14183b5dcb523ff0eaaf030968c inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#ac000e14183b5dcb523ff0eaaf030968c">More...</a><br /></td></tr>
<tr class="separator:ac000e14183b5dcb523ff0eaaf030968c inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb7d7965c0fc0736b6c59f5f81a3e8c2 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a id="aeb7d7965c0fc0736b6c59f5f81a3e8c2" name="aeb7d7965c0fc0736b6c59f5f81a3e8c2"></a>
<a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a> &amp;)=delete</td></tr>
<tr class="memdesc:aeb7d7965c0fc0736b6c59f5f81a3e8c2 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy assignment is disallowed. <br /></td></tr>
<tr class="separator:aeb7d7965c0fc0736b6c59f5f81a3e8c2 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba79f245e6f726ac6aa573e45e0bfdf3 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a787253f02859ea6b99ce3eba92766431">Mdt_builder_ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#aba79f245e6f726ac6aa573e45e0bfdf3">mdt_builder</a> ()</td></tr>
<tr class="memdesc:aba79f245e6f726ac6aa573e45e0bfdf3 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#aba79f245e6f726ac6aa573e45e0bfdf3">More...</a><br /></td></tr>
<tr class="separator:aba79f245e6f726ac6aa573e45e0bfdf3 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d8cdbb86140056a7e7d2931ea642b18 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a6d8cdbb86140056a7e7d2931ea642b18">open_channel</a> (<a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2">Channel_obj</a> *target_channel, const <a class="el" href="classipc_1_1session_1_1Session__mv.html#a787253f02859ea6b99ce3eba92766431">Mdt_builder_ptr</a> &amp;mdt, <a class="el" href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89">Error_code</a> *err_code=0)</td></tr>
<tr class="memdesc:a6d8cdbb86140056a7e7d2931ea642b18 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a6d8cdbb86140056a7e7d2931ea642b18">More...</a><br /></td></tr>
<tr class="separator:a6d8cdbb86140056a7e7d2931ea642b18 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84e80e24d7b16da0a9ecf83057acfd8e inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a84e80e24d7b16da0a9ecf83057acfd8e">open_channel</a> (<a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2">Channel_obj</a> *target_channel, <a class="el" href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89">Error_code</a> *err_code=0)</td></tr>
<tr class="memdesc:a84e80e24d7b16da0a9ecf83057acfd8e inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a84e80e24d7b16da0a9ecf83057acfd8e">More...</a><br /></td></tr>
<tr class="separator:a84e80e24d7b16da0a9ecf83057acfd8e inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a749f1f679f858d2dce8562cdddc60195 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceipc_1_1session.html#ade2b302f1a3623e8adc9694568d94d2c">Session_token</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a749f1f679f858d2dce8562cdddc60195">session_token</a> () const</td></tr>
<tr class="memdesc:a749f1f679f858d2dce8562cdddc60195 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a749f1f679f858d2dce8562cdddc60195">More...</a><br /></td></tr>
<tr class="separator:a749f1f679f858d2dce8562cdddc60195 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a107684fdd5d233549c6daac26a81a542 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html">transport::struc::Heap_fixed_builder::Config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a107684fdd5d233549c6daac26a81a542">heap_fixed_builder_config</a> ()</td></tr>
<tr class="memdesc:a107684fdd5d233549c6daac26a81a542 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most efficient yet safe values, for transport::struc::Msg_out (out-messages) compatible with <a class="el" href="classipc_1_1session_1_1Session__mv.html#ac205819d4a3a066f31b5af311ff40a2a" title="Implements Session API per contract.">Structured_channel</a> upgraded-from <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a> channels opened via <code>*this</code> Session_mv.  <a href="classipc_1_1session_1_1Session__mv.html#a107684fdd5d233549c6daac26a81a542">More...</a><br /></td></tr>
<tr class="separator:a107684fdd5d233549c6daac26a81a542 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3c69e3f8ccbd70d315bed86d697255d inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html">transport::struc::Heap_reader::Config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ab3c69e3f8ccbd70d315bed86d697255d">heap_reader_config</a> ()</td></tr>
<tr class="memdesc:ab3c69e3f8ccbd70d315bed86d697255d inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deserializing counterpart to non-<code>static</code> <a class="el" href="classipc_1_1session_1_1Session__mv.html#a107684fdd5d233549c6daac26a81a542" title="Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most e...">heap_fixed_builder_config()</a>.  <a href="classipc_1_1session_1_1Session__mv.html#ab3c69e3f8ccbd70d315bed86d697255d">More...</a><br /></td></tr>
<tr class="separator:ab3c69e3f8ccbd70d315bed86d697255d inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a142df6d6db09962a1dc0f536bf4977f0 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">flow::log::Logger *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a142df6d6db09962a1dc0f536bf4977f0">get_logger</a> () const</td></tr>
<tr class="memdesc:a142df6d6db09962a1dc0f536bf4977f0 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns logger (possibly null).  <a href="classipc_1_1session_1_1Session__mv.html#a142df6d6db09962a1dc0f536bf4977f0">More...</a><br /></td></tr>
<tr class="separator:a142df6d6db09962a1dc0f536bf4977f0 inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23b43187319871c4974755175973008e inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">const flow::log::Component &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a23b43187319871c4974755175973008e">get_log_component</a> () const</td></tr>
<tr class="memdesc:a23b43187319871c4974755175973008e inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns log component.  <a href="classipc_1_1session_1_1Session__mv.html#a23b43187319871c4974755175973008e">More...</a><br /></td></tr>
<tr class="separator:a23b43187319871c4974755175973008e inherit pub_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a3a407e1a87e5b384c3903ede62cca650"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a3a407e1a87e5b384c3903ede62cca650">Server_session</a> (flow::log::Logger *logger_ptr, const <a class="el" href="structipc_1_1session_1_1Server__app.html">Server_app</a> &amp;srv_app_ref, <a class="el" href="classipc_1_1transport_1_1Native__socket__stream.html">transport::Native_socket_stream</a> &amp;&amp;master_channel_sock_stm)</td></tr>
<tr class="memdesc:a3a407e1a87e5b384c3903ede62cca650"><td class="mdescLeft">&#160;</td><td class="mdescRight">For use by internal user Session_server_impl: constructor.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a3a407e1a87e5b384c3903ede62cca650">More...</a><br /></td></tr>
<tr class="separator:a3a407e1a87e5b384c3903ede62cca650"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classipc_1_1session_1_1Server__session__mv"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classipc_1_1session_1_1Server__session__mv')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classipc_1_1session_1_1Server__session__mv.html">ipc::session::Server_session_mv&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt;</a></td></tr>
<tr class="memitem:ae190ff87b86aab1a68374789791553e1 inherit pro_methods_classipc_1_1session_1_1Server__session__mv"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Server__session__mv.html#ae190ff87b86aab1a68374789791553e1">Server_session_mv</a> (flow::log::Logger *logger_ptr, const <a class="el" href="structipc_1_1session_1_1Server__app.html">Server_app</a> &amp;srv_app_ref, <a class="el" href="classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html">transport::sync_io::Native_socket_stream</a> &amp;&amp;master_channel_sock_stm)</td></tr>
<tr class="memdesc:ae190ff87b86aab1a68374789791553e1 inherit pro_methods_classipc_1_1session_1_1Server__session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">For use by internal user Session_server_impl: constructor.  <a href="classipc_1_1session_1_1Server__session__mv.html#ae190ff87b86aab1a68374789791553e1">More...</a><br /></td></tr>
<tr class="separator:ae190ff87b86aab1a68374789791553e1 inherit pro_methods_classipc_1_1session_1_1Server__session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74d647e2f555465c28065dc11cd092cb inherit pro_methods_classipc_1_1session_1_1Server__session__mv"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Server__session__mv.html#a74d647e2f555465c28065dc11cd092cb">async_accept_log_in</a> (Session_server_impl_t *srv, typename <a class="el" href="classipc_1_1session_1_1Session__mv.html#af87da439644b2afd73d6a13d97e7985f">Base::Channels</a> *init_channels_by_srv_req, typename <a class="el" href="classipc_1_1session_1_1Session__mv.html#a2b1215fb0c9738b9fcfbb337d23c43df">Base::Mdt_reader_ptr</a> *mdt_from_cli_or_null, typename <a class="el" href="classipc_1_1session_1_1Session__mv.html#af87da439644b2afd73d6a13d97e7985f">Base::Channels</a> *init_channels_by_cli_req, Cli_app_lookup_func &amp;&amp;cli_app_lookup_func, Cli_namespace_func &amp;&amp;cli_namespace_func, Pre_rsp_setup_func &amp;&amp;pre_rsp_setup_func, N_init_channels_by_srv_req_func &amp;&amp;n_init_channels_by_srv_req_func, Mdt_load_func &amp;&amp;mdt_load_func, Task_err &amp;&amp;on_done_func)</td></tr>
<tr class="memdesc:a74d647e2f555465c28065dc11cd092cb inherit pro_methods_classipc_1_1session_1_1Server__session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">For use by internal user Session_server: called no more than once, ideally immediately following ctor, this attempts to get <code>*this</code> asynchronously to almost-PEER state by undergoing the log-in request/response (plus, if needed, init-channel-opening) procedure (the other side of which is done by Client_session_impl::sync_connect()).  <a href="classipc_1_1session_1_1Server__session__mv.html#a74d647e2f555465c28065dc11cd092cb">More...</a><br /></td></tr>
<tr class="separator:a74d647e2f555465c28065dc11cd092cb inherit pro_methods_classipc_1_1session_1_1Server__session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classipc_1_1session_1_1Session__mv"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classipc_1_1session_1_1Session__mv')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt;</a></td></tr>
<tr class="memitem:a7589e9e086afae1d8be969c8e6c1987d inherit pro_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classipc_1_1session_1_1Session__mv.html#acb47dfa0f5645cf2da7d62ac5862e8cc">Session_base_obj</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a7589e9e086afae1d8be969c8e6c1987d">base</a> () const</td></tr>
<tr class="memdesc:a7589e9e086afae1d8be969c8e6c1987d inherit pro_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides <code>const</code> access to Session_base super-object.  <a href="classipc_1_1session_1_1Session__mv.html#a7589e9e086afae1d8be969c8e6c1987d">More...</a><br /></td></tr>
<tr class="separator:a7589e9e086afae1d8be969c8e6c1987d inherit pro_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5e646ae3649914384cb2e7f94aa7a25 inherit pro_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a457c661352bf3111ca4f707c15d51b3e">Impl_ptr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ae5e646ae3649914384cb2e7f94aa7a25">impl</a> ()</td></tr>
<tr class="memdesc:ae5e646ae3649914384cb2e7f94aa7a25 inherit pro_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">pImpl target; particularly for sub-classes that must add to the above <code>public</code> API.  <a href="classipc_1_1session_1_1Session__mv.html#ae5e646ae3649914384cb2e7f94aa7a25">More...</a><br /></td></tr>
<tr class="separator:ae5e646ae3649914384cb2e7f94aa7a25 inherit pro_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a025cd4b449dbfc68008ac9379a07ca63 inherit pro_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classipc_1_1session_1_1Session__mv.html#a457c661352bf3111ca4f707c15d51b3e">Impl_ptr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a025cd4b449dbfc68008ac9379a07ca63">impl</a> () const</td></tr>
<tr class="memdesc:a025cd4b449dbfc68008ac9379a07ca63 inherit pro_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">pImpl target; particularly for sub-classes that must add to the above <code>public</code> API.  <a href="classipc_1_1session_1_1Session__mv.html#a025cd4b449dbfc68008ac9379a07ca63">More...</a><br /></td></tr>
<tr class="separator:a025cd4b449dbfc68008ac9379a07ca63 inherit pro_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="related" name="related"></a>
Related Functions</h2></td></tr>
<tr><td class="ititle" colspan="2"><p >(Note that these are not member functions.) </p>
</td></tr>
<tr class="memitem:a8fc81db9a5adc7b6efc8529b5f1d98d2"><td class="memTemplParams" colspan="2">template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </td></tr>
<tr class="memitem:a8fc81db9a5adc7b6efc8529b5f1d98d2"><td class="memTemplItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a8fc81db9a5adc7b6efc8529b5f1d98d2">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html">Server_session</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &amp;val)</td></tr>
<tr class="memdesc:a8fc81db9a5adc7b6efc8529b5f1d98d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints string representation of the given <code><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html" title="Identical to session::Server_session in every way, except that it makes available two SHM arenas,...">Server_session</a></code> to the given <code>ostream</code>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a8fc81db9a5adc7b6efc8529b5f1d98d2">More...</a><br /></td></tr>
<tr class="separator:a8fc81db9a5adc7b6efc8529b5f1d98d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header related_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td colspan="2" onclick="javascript:toggleInherit('related_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv')"><img src="closed.png" alt="-"/>&#160;Related Functions inherited from <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html">ipc::session::shm::arena_lend::jemalloc::Session_mv&lt; session::Server_session_mv&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt; &gt;</a></td></tr>
<tr class="memitem:aea882d38a00f81a98d6604e300c5a01a inherit related_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#aea882d38a00f81a98d6604e300c5a01a">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html">Session_mv</a>&lt; <a class="el" href="classipc_1_1session_1_1Server__session__mv.html">session::Server_session_mv</a>&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt; &gt; &amp;val)</td></tr>
<tr class="memdesc:aea882d38a00f81a98d6604e300c5a01a inherit related_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints string representation of the given <code>Session_mv</code> to the given <code>ostream</code>.  <a href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#aea882d38a00f81a98d6604e300c5a01a">More...</a><br /></td></tr>
<tr class="separator:aea882d38a00f81a98d6604e300c5a01a inherit related_classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header related_classipc_1_1session_1_1Server__session__mv"><td colspan="2" onclick="javascript:toggleInherit('related_classipc_1_1session_1_1Server__session__mv')"><img src="closed.png" alt="-"/>&#160;Related Functions inherited from <a class="el" href="classipc_1_1session_1_1Server__session__mv.html">ipc::session::Server_session_mv&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt;</a></td></tr>
<tr class="memitem:aed5397fd025606507ad8dab74479762f inherit related_classipc_1_1session_1_1Server__session__mv"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Server__session__mv.html#aed5397fd025606507ad8dab74479762f">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classipc_1_1session_1_1Server__session__mv.html">Server_session_mv</a>&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt; &amp;val)</td></tr>
<tr class="memdesc:aed5397fd025606507ad8dab74479762f inherit related_classipc_1_1session_1_1Server__session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints string representation of the given <code>Server_session_mv</code> to the given <code>ostream</code>.  <a href="classipc_1_1session_1_1Server__session__mv.html#aed5397fd025606507ad8dab74479762f">More...</a><br /></td></tr>
<tr class="separator:aed5397fd025606507ad8dab74479762f inherit related_classipc_1_1session_1_1Server__session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header related_classipc_1_1session_1_1Session__mv"><td colspan="2" onclick="javascript:toggleInherit('related_classipc_1_1session_1_1Session__mv')"><img src="closed.png" alt="-"/>&#160;Related Functions inherited from <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt;</a></td></tr>
<tr class="memitem:a07c2d7a228f070e32bf4f1fbc64e1f6d inherit related_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a07c2d7a228f070e32bf4f1fbc64e1f6d">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a>&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt; &amp;val)</td></tr>
<tr class="memdesc:a07c2d7a228f070e32bf4f1fbc64e1f6d inherit related_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints string representation of the given <code>Session_mv</code> to the given <code>ostream</code>.  <a href="classipc_1_1session_1_1Session__mv.html#a07c2d7a228f070e32bf4f1fbc64e1f6d">More...</a><br /></td></tr>
<tr class="separator:a07c2d7a228f070e32bf4f1fbc64e1f6d inherit related_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_classipc_1_1session_1_1Session__mv"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classipc_1_1session_1_1Session__mv')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt;</a></td></tr>
<tr class="memitem:a26dfe4dd3ff57daab5a36a037f835c4e inherit pub_static_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html">transport::struc::Heap_fixed_builder::Config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a26dfe4dd3ff57daab5a36a037f835c4e">heap_fixed_builder_config</a> (flow::log::Logger *logger_ptr)</td></tr>
<tr class="memdesc:a26dfe4dd3ff57daab5a36a037f835c4e inherit pub_static_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most efficient yet safe values, for transport::struc::Msg_out (out-messages) compatible with <a class="el" href="classipc_1_1session_1_1Session__mv.html#ac205819d4a3a066f31b5af311ff40a2a" title="Implements Session API per contract.">Structured_channel</a> upgraded-from <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a> channels opened via this Session_mv type.  <a href="classipc_1_1session_1_1Session__mv.html#a26dfe4dd3ff57daab5a36a037f835c4e">More...</a><br /></td></tr>
<tr class="separator:a26dfe4dd3ff57daab5a36a037f835c4e inherit pub_static_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a411feb974e2b7ed48b08ac50bcdf43b3 inherit pub_static_methods_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html">transport::struc::Heap_reader::Config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a411feb974e2b7ed48b08ac50bcdf43b3">heap_reader_config</a> (flow::log::Logger *logger_ptr)</td></tr>
<tr class="memdesc:a411feb974e2b7ed48b08ac50bcdf43b3 inherit pub_static_methods_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deserializing counterpart to <code>static</code> <a class="el" href="classipc_1_1session_1_1Session__mv.html#a107684fdd5d233549c6daac26a81a542" title="Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most e...">heap_fixed_builder_config()</a>.  <a href="classipc_1_1session_1_1Session__mv.html#a411feb974e2b7ed48b08ac50bcdf43b3">More...</a><br /></td></tr>
<tr class="separator:a411feb974e2b7ed48b08ac50bcdf43b3 inherit pub_static_methods_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classipc_1_1session_1_1Session__mv"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classipc_1_1session_1_1Session__mv')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt;</a></td></tr>
<tr class="memitem:a74af091662cb7c32e0f1c60baac3613b inherit pub_static_attribs_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">static constexpr schema::ShmType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a74af091662cb7c32e0f1c60baac3613b">S_SHM_TYPE</a></td></tr>
<tr class="memdesc:a74af091662cb7c32e0f1c60baac3613b inherit pub_static_attribs_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a74af091662cb7c32e0f1c60baac3613b">More...</a><br /></td></tr>
<tr class="separator:a74af091662cb7c32e0f1c60baac3613b inherit pub_static_attribs_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62945e465ae734523036215750c90ba4 inherit pub_static_attribs_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a62945e465ae734523036215750c90ba4">S_SHM_ENABLED</a></td></tr>
<tr class="memdesc:a62945e465ae734523036215750c90ba4 inherit pub_static_attribs_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Session API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a62945e465ae734523036215750c90ba4">More...</a><br /></td></tr>
<tr class="separator:a62945e465ae734523036215750c90ba4 inherit pub_static_attribs_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a87002dccab497da76bb286d5a4bf95 inherit pub_static_attribs_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a id="a6a87002dccab497da76bb286d5a4bf95" name="a6a87002dccab497da76bb286d5a4bf95"></a>
static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><b>S_MQS_ENABLED</b></td></tr>
<tr class="memdesc:a6a87002dccab497da76bb286d5a4bf95 inherit pub_static_attribs_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile-time-known constant indicating whether <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a> shall use a blobs pipe over message queues (MQs). <br /></td></tr>
<tr class="separator:a6a87002dccab497da76bb286d5a4bf95 inherit pub_static_attribs_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addc597e6bf3555dc3788116c8cc179dd inherit pub_static_attribs_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#addc597e6bf3555dc3788116c8cc179dd">S_SOCKET_STREAM_ENABLED</a></td></tr>
<tr class="memdesc:addc597e6bf3555dc3788116c8cc179dd inherit pub_static_attribs_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile-time-known constant indicating whether <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a> shall use socket stream for any type of pipe.  <a href="classipc_1_1session_1_1Session__mv.html#addc597e6bf3555dc3788116c8cc179dd">More...</a><br /></td></tr>
<tr class="separator:addc597e6bf3555dc3788116c8cc179dd inherit pub_static_attribs_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_types_classipc_1_1session_1_1Session__mv"><td colspan="2" onclick="javascript:toggleInherit('pro_types_classipc_1_1session_1_1Session__mv')"><img src="closed.png" alt="-"/>&#160;Protected Types inherited from <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv&lt; Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &gt;</a></td></tr>
<tr class="memitem:af2c186e7b4be09bff30b42aa2482dd93 inherit pro_types_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a id="af2c186e7b4be09bff30b42aa2482dd93" name="af2c186e7b4be09bff30b42aa2482dd93"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Impl</b> = Server_session_impl&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;</td></tr>
<tr class="memdesc:af2c186e7b4be09bff30b42aa2482dd93 inherit pro_types_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for pImpl-lite impl type. This shall be the deepest impl sub-class desired. <br /></td></tr>
<tr class="separator:af2c186e7b4be09bff30b42aa2482dd93 inherit pro_types_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb47dfa0f5645cf2da7d62ac5862e8cc inherit pro_types_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a id="acb47dfa0f5645cf2da7d62ac5862e8cc" name="acb47dfa0f5645cf2da7d62ac5862e8cc"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Session_base_obj</b> = typename Impl::Session_base_obj</td></tr>
<tr class="memdesc:acb47dfa0f5645cf2da7d62ac5862e8cc inherit pro_types_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for <a class="el" href="classipc_1_1session_1_1Session__mv.html#af2c186e7b4be09bff30b42aa2482dd93" title="Short-hand for pImpl-lite impl type. This shall be the deepest impl sub-class desired.">Impl</a>'s Session_base super-class. <br /></td></tr>
<tr class="separator:acb47dfa0f5645cf2da7d62ac5862e8cc inherit pro_types_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a457c661352bf3111ca4f707c15d51b3e inherit pro_types_classipc_1_1session_1_1Session__mv"><td class="memItemLeft" align="right" valign="top"><a id="a457c661352bf3111ca4f707c15d51b3e" name="a457c661352bf3111ca4f707c15d51b3e"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Impl_ptr</b> = std::experimental::propagate_const&lt; boost::movelib::unique_ptr&lt; <a class="el" href="classipc_1_1session_1_1Session__mv.html#af2c186e7b4be09bff30b42aa2482dd93">Impl</a> &gt; &gt;</td></tr>
<tr class="memdesc:a457c661352bf3111ca4f707c15d51b3e inherit pro_types_classipc_1_1session_1_1Session__mv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for <code>const</code>-respecting wrapper around <a class="el" href="classipc_1_1session_1_1Session__mv.html#af2c186e7b4be09bff30b42aa2482dd93" title="Short-hand for pImpl-lite impl type. This shall be the deepest impl sub-class desired.">Impl</a> for the pImpl idiom. See <a class="el" href="classipc_1_1session_1_1Session__mv.html#ae5e646ae3649914384cb2e7f94aa7a25" title="pImpl target; particularly for sub-classes that must add to the above public API.">impl()</a>. <br /></td></tr>
<tr class="separator:a457c661352bf3111ca4f707c15d51b3e inherit pro_types_classipc_1_1session_1_1Session__mv"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload&gt;<br />
class ipc::session::shm::arena_lend::jemalloc::Server_session&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;</div><p >Identical to <a class="el" href="namespaceipc_1_1session.html#ab01d5bce0ab2f3435ca9dd88d27609dc" title="A vanilla Server_session with no optional capabilities.">session::Server_session</a> in every way, except that it makes available two SHM arenas, from the SHM-jemalloc provider (ipc::shm::arena_lend::jemalloc). </p>
<p >These SHM arenas (see <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a988281add5dc4a31202cfba47f458e5a" title="Short-hand for base class member alias Session_mv::Arena. Its doc header contains useful context and ...">Arena</a> doc header) have different scopes:</p><ul>
<li>Per-session-scope, accessible via <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a361c867d10a255ff62cdb19b75fc0a18" title="Returns SHM Arena with per-session scope, meaning it shall be accessible only during the lifetime of ...">session_shm()</a>: meaning it shall be accessible only during the lifetime of this session, by this <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> (via this accessor).<ul>
<li>Hence this arena is created at the time <code>*this</code> enters PEER state (near <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a4b451906ee2b46d230df5f252bbb64ed" title="Contract identical to simpler session::Session_server::async_accept() overload; but internally ensure...">Session_server::async_accept()</a> successfully yielding <code>*this</code>). When <code>*this</code> is destroyed or hosed, the arena is invalidated.</li>
</ul>
</li>
<li>Per-app-scope, meaning its pool shall be accessible potentially beyond the lifetime of this session but rather until the generating <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html" title="This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server...">Session_server</a> (i.e., server process) shuts down, by any <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> under that umbrella, now or in the future, as long as its <a class="el" href="structipc_1_1session_1_1Client__app.html" title="An App that is used as a client in at least one client-server IPC split.">Client_app</a> equals that of <code>*this</code> session.<ul>
<li>Hence this arena is created at the time the <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html" title="This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server...">shm::arena_lend::jemalloc::Session_server</a> (emitter of <code>*this</code> to user) first establishes a session with the <em>first</em> <a class="el" href="namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html#a837b4566cb2a734eb0ba58f285d084fe" title="This is to session::Client_session what shm::arena_lend::jemalloc::Server_session is to session::Serv...">shm::arena_lend::jemalloc::Client_session</a> matching the same <a class="el" href="structipc_1_1session_1_1Client__app.html" title="An App that is used as a client in at least one client-server IPC split.">Client_app</a> as <code>*this</code>. I.e., it's created at the same time as <code>this-&gt;<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a361c867d10a255ff62cdb19b75fc0a18" title="Returns SHM Arena with per-session scope, meaning it shall be accessible only during the lifetime of ...">session_shm()</a></code> is, if <code>*this</code> is the first such session; otherwise earlier. When <code>*this</code> is destroyed or hosed (gracefully at least), the arena is <em>not</em> invalidated but persists.</li>
</ul>
</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>The opposing <a class="el" href="namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html#a837b4566cb2a734eb0ba58f285d084fe" title="This is to session::Client_session what shm::arena_lend::jemalloc::Server_session is to session::Serv...">arena_lend::jemalloc::Client_session</a> is similar but lacks the <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a20d4838f6ff705bd2ad33de066ae2d4d" title="Returns SHM Arena with per-app scope, meaning its pool shall be accessible potentially beyond the lif...">app_shm()</a> <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a988281add5dc4a31202cfba47f458e5a" title="Short-hand for base class member alias Session_mv::Arena. Its doc header contains useful context and ...">Arena</a>.</dd></dl>
<h3>Explicitly constructing an object in SHM; lending to opposing side</h3>
<p >This setup is symmetrical w/r/t a given <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html" title="Identical to session::Server_session in every way, except that it makes available two SHM arenas,...">shm::arena_lend::jemalloc::Server_session</a>&lt;-&gt;<a class="el" href="namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html#a837b4566cb2a734eb0ba58f285d084fe" title="This is to session::Client_session what shm::arena_lend::jemalloc::Server_session is to session::Serv...">shm::arena_lend::jemalloc::Client_session</a> object pair. Both can create new objects (via respective <code>Arena::construct()</code> methods). Both can write and, of course, read within locally <code>construct()</code>ed objects. Lastly each can transmit any outer handle, returned by <code>construct()</code>, to the opposing side. To do this call <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a1346f63d338304a20bef43d3c93c7562" title="Adds an owner process to the owner set of the given Arena::construct()-ed handle; and returns an opaq...">lend_object()</a>, transmit the returned <code>Blob</code> to the opposing side via any desired IPC form (probably a <a class="el" href="classipc_1_1transport_1_1Channel.html" title="Peer to a bundle of 1-2 full-duplex pipe(s), one for transmitting unstructured binary blobs; the othe...">transport::Channel</a> or <a class="el" href="classipc_1_1transport_1_1struc_1_1Channel.html" title="Owning and wrapping a pre-connected transport::Channel peer (an endpoint of an established channel ov...">transport::struc::Channel</a>), then recover a handle via <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a7880b205b076ddd46537826d3b2028e9" title="Completes the cross-process operation begun by oppsing Session_mv::lend_object() that returned serial...">borrow_object()</a> on that opposing side. As of this writing access to objects on the borrowing side is read-only, for safety reasons, but that could change (most likely becoming an optional mode) at the prerogative of ipc::shm::arena_lend developers. (Do note that <a class="el" href="namespaceipc_1_1shm_1_1classic.html" title="ipc::shm sub-module with the SHM-classic SHM-provider. See ipc::shm doc header for introduction.">ipc::shm::classic</a> allows full write access on the borrower side, as in an arena-sharing SHM-provider by definition both sides allocate and thus write to the same SHM pool(s). However this comes at the expense of safety. Further discussion is up to <a class="el" href="namespaceipc_1_1shm.html" title="Modules for SHared Memory (SHM) support.">ipc::shm</a> docs.)</p>
<dl class="section note"><dt>Note</dt><dd>Be ready for <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a1346f63d338304a20bef43d3c93c7562" title="Adds an owner process to the owner set of the given Arena::construct()-ed handle; and returns an opaq...">Session_mv::lend_object()</a> to return an empty blob and <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a7880b205b076ddd46537826d3b2028e9" title="Completes the cross-process operation begun by oppsing Session_mv::lend_object() that returned serial...">Session_mv::borrow_object()</a> to return a null pointer, both indicating an error: the session is hosed (opposing process likely down). See their doc headers for a bit more info on this.</dd></dl>
<p>By using <code><a class="el" href="classipc_1_1shm_1_1stl_1_1Arena__activator.html" title="RAII-style class operating a stack-like notion of a the given thread&#39;s currently active SHM-aware Are...">shm::stl::Arena_activator</a>&lt;Arena&gt;</code> (alias shm::arena_lend::jemalloc::Ipc_arena_activator) and <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#abbb009e31853d3222a1614535ce401b7" title="Convenience alias to be used in STL-compliant Ts with &quot;Arena::construct&lt;T&gt;()&quot;, our own lend_object&lt;T&gt;...">Allocator</a> (alias shm::arena_lend::jemalloc::Ipc_arena_allocator) it is possible to construct and transmit not just POD (Plain Old Datatype) objects but combinations of those with unlimited nested levels of STL-compliant containers. On the borrowing side use <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#ae32bce4c9889325f38d7d6f902efe4e8" title="Convenience alias to be used in STL-compliant Ts with our own borrow_object&lt;T&gt;() and &quot;Shm_session::bo...">Borrower_allocator</a> (no activator necessary).</p>
<p >Detailed instructions can be found in those <a class="el" href="namespaceipc_1_1shm_1_1stl.html" title="ipc::shm sub-module providing integration between STL-compliant components (including containers) and...">shm::stl</a> and ipc::shm::arena_lend doc headers.</p>
<h3>Using SHM as backing memory for <a class="el" href="classipc_1_1transport_1_1struc_1_1Channel.html" title="Owning and wrapping a pre-connected transport::Channel peer (an endpoint of an established channel ov...">transport::struc::Channel</a></h3>
<p >Another use of <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a361c867d10a255ff62cdb19b75fc0a18" title="Returns SHM Arena with per-session scope, meaning it shall be accessible only during the lifetime of ...">session_shm()</a> and <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a20d4838f6ff705bd2ad33de066ae2d4d" title="Returns SHM Arena with per-app scope, meaning its pool shall be accessible potentially beyond the lif...">app_shm()</a> (though only on this session-server side in case of the latter) &ndash; in some ways perhaps superior &ndash; is indirect. The above technique involves manually constructing a C++ data structure and transmitting a short handle to it over IPC thus achieving high performance. It may be desirable, instead, to use a structured message, filled out according to schema. This, of course, is why <a class="el" href="classipc_1_1transport_1_1struc_1_1Channel.html" title="Owning and wrapping a pre-connected transport::Channel peer (an endpoint of an established channel ov...">transport::struc::Channel</a> exists. As is explained in its docs, there is nothing SHM-centered about it. It does however have the key feature that allows one to supply, at compile-time, the builder and reader engines that acquire memory while the user mutates an out-message and later accesses it upon IPC-receipt. Naturally one of the builder/reader pairs uses SHM, instead of regular heap, as the supplier of RAM. Thus when one invokes <a class="el" href="classipc_1_1transport_1_1struc_1_1Channel.html#ae645cb58ad9ea6374970f1f32c5da448" title="In the synchronous/non-blocking manner of Blob_sender::send_blob() or Native_handle_sender::send_nati...">transport::struc::Channel::send()</a> and receives it in the opposing object, the actual bits copied into/out of the low-level transport are merely the SHM handle (and all of this is hidden from the user outside of the delightful near-zero-copy perf properties).</p>
<p >There are two ways to make this happen. The easiest and best way is, when constructing the <code>struc::Channel</code>, to use the alias <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a44555ea9786408cd39652d45758bcabc" title="Implements Session API per contract.">session::shm::arena_lend::jemalloc::Session_mv::Structured_channel</a> and create one via tag-form ctor with tag <a class="el" href="structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__session__shm.html" title="Tag type for ctor selection: Backing RAM for serialization comes from a given session::Session&#39;s SHM ...">transport::struc::Channel_base::Serialize_via_session_shm</a> (or <code>Serialize_via_app_shm</code>, server-side only). Simply provide that tag and <code>this</code> (or, symmetrically, <code>shm::arena_lend::jemalloc::Client_session::this</code> on the other side).</p>
<p >The harder way, albeit allowing for certain advanced setups, is to manually create a <code>transport::struc::shm::arena_lend::jemalloc::Builder::Config</code> and/or <code>Reader::Config</code>, passing in <code>this-&gt;<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a361c867d10a255ff62cdb19b75fc0a18" title="Returns SHM Arena with per-session scope, meaning it shall be accessible only during the lifetime of ...">session_shm()</a></code> and/or <code>this-&gt;<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a20d4838f6ff705bd2ad33de066ae2d4d" title="Returns SHM Arena with per-app scope, meaning its pool shall be accessible potentially beyond the lif...">app_shm()</a></code> and/or <code>this-&gt;<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a361c867d10a255ff62cdb19b75fc0a18" title="Returns SHM Arena with per-session scope, meaning it shall be accessible only during the lifetime of ...">session_shm()</a></code>, to those; and then pass the <code>Config</code> or <code>Config</code>s, plus <code>this-&gt;<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#abde9667974bac936135e6a826e856f9a" title="Returns lend/borrow engine Shm_session for *this session.">shm_session()</a></code>, to the non-tag-form of <code>struc::Channel</code> ctor.</p>
<p >This is all documented on <a class="el" href="classipc_1_1transport_1_1struc_1_1Channel.html" title="Owning and wrapping a pre-connected transport::Channel peer (an endpoint of an established channel ov...">transport::struc::Channel</a>. Do realize, though, that those niceties are really built on this class template and/or the opposing <a class="el" href="namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html#a837b4566cb2a734eb0ba58f285d084fe" title="This is to session::Client_session what shm::arena_lend::jemalloc::Server_session is to session::Serv...">shm::arena_lend::jemalloc::Client_session</a>. To use them with <a class="el" href="namespaceipc_1_1session.html" title="Flow-IPC module providing the broad lifecycle and shared-resource organization – via the session conc...">ipc::session</a>, you must thus choose <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html" title="Identical to session::Server_session in every way, except that it makes available two SHM arenas,...">shm::arena_lend::jemalloc::Server_session</a> and <a class="el" href="namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html#a837b4566cb2a734eb0ba58f285d084fe" title="This is to session::Client_session what shm::arena_lend::jemalloc::Server_session is to session::Serv...">shm::arena_lend::jemalloc::Client_session</a> as your <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> impls.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">S_MQ_TYPE_OR_NONE</td><td>Identical to <a class="el" href="namespaceipc_1_1session.html#ab01d5bce0ab2f3435ca9dd88d27609dc" title="A vanilla Server_session with no optional capabilities.">session::Server_session</a>. </td></tr>
    <tr><td class="paramname">S_TRANSMIT_NATIVE_HANDLES</td><td>Identical to <a class="el" href="namespaceipc_1_1session.html#ab01d5bce0ab2f3435ca9dd88d27609dc" title="A vanilla Server_session with no optional capabilities.">session::Server_session</a>. </td></tr>
    <tr><td class="paramname">Mdt_payload</td><td>Identical to <a class="el" href="namespaceipc_1_1session.html#ab01d5bce0ab2f3435ca9dd88d27609dc" title="A vanilla Server_session with no optional capabilities.">session::Server_session</a>. </td></tr>
  </table>
  </dd>
</dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a3a407e1a87e5b384c3903ede62cca650" name="a3a407e1a87e5b384c3903ede62cca650"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a407e1a87e5b384c3903ede62cca650">&#9670;&nbsp;</a></span>Server_session()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html">ipc::session::shm::arena_lend::jemalloc::Server_session</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::Server_session </td>
          <td>(</td>
          <td class="paramtype">flow::log::Logger *&#160;</td>
          <td class="paramname"><em>logger_ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structipc_1_1session_1_1Server__app.html">Server_app</a> &amp;&#160;</td>
          <td class="paramname"><em>srv_app_ref</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classipc_1_1transport_1_1Native__socket__stream.html">transport::Native_socket_stream</a> &amp;&amp;&#160;</td>
          <td class="paramname"><em>master_channel_sock_stm</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>For use by internal user Session_server_impl: constructor. </p>
<p >Identical to <a class="el" href="classipc_1_1session_1_1Server__session__mv.html" title="Implements Session concept on the Server_app end: a Session that is emitted in almost-PEER state by l...">Server_session_mv</a> ctor.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">logger_ptr</td><td>See <a class="el" href="classipc_1_1session_1_1Server__session__mv.html" title="Implements Session concept on the Server_app end: a Session that is emitted in almost-PEER state by l...">Server_session_mv</a> ctor. </td></tr>
    <tr><td class="paramname">srv_app_ref</td><td>See <a class="el" href="classipc_1_1session_1_1Server__session__mv.html" title="Implements Session concept on the Server_app end: a Session that is emitted in almost-PEER state by l...">Server_session_mv</a> ctor. </td></tr>
    <tr><td class="paramname">master_channel_sock_stm</td><td>See <a class="el" href="classipc_1_1session_1_1Server__session__mv.html" title="Implements Session concept on the Server_app end: a Session that is emitted in almost-PEER state by l...">Server_session_mv</a> ctor. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a20d4838f6ff705bd2ad33de066ae2d4d" name="a20d4838f6ff705bd2ad33de066ae2d4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20d4838f6ff705bd2ad33de066ae2d4d">&#9670;&nbsp;</a></span>app_shm()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html">Server_session</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a988281add5dc4a31202cfba47f458e5a">::Arena</a> * <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html">ipc::session::shm::arena_lend::jemalloc::Server_session</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::app_shm</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns SHM <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a988281add5dc4a31202cfba47f458e5a" title="Short-hand for base class member alias Session_mv::Arena. Its doc header contains useful context and ...">Arena</a> with per-app scope, meaning its pool shall be accessible potentially beyond the lifetime of this session but rather until the generating <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html" title="This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server...">Session_server</a> (i.e., server process) shuts down, by any <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> under that umbrella, now or in the future, as long as its <a class="el" href="structipc_1_1session_1_1Client__app.html" title="An App that is used as a client in at least one client-server IPC split.">Client_app</a> equals that of <code>*this</code> session. </p>
<dl class="section note"><dt>Note</dt><dd>A similar <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a988281add5dc4a31202cfba47f458e5a" title="Short-hand for base class member alias Session_mv::Arena. Its doc header contains useful context and ...">Arena</a> is <em>not</em> available in the opposing <a class="el" href="namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html#a837b4566cb2a734eb0ba58f285d084fe" title="This is to session::Client_session what shm::arena_lend::jemalloc::Server_session is to session::Serv...">Client_session</a>.</dd></dl>
<p>See <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a988281add5dc4a31202cfba47f458e5a" title="Short-hand for base class member alias Session_mv::Arena. Its doc header contains useful context and ...">Arena</a> doc header for useful instructions on working with <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a988281add5dc4a31202cfba47f458e5a" title="Short-hand for base class member alias Session_mv::Arena. Its doc header contains useful context and ...">Arena</a>, <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a1346f63d338304a20bef43d3c93c7562" title="Adds an owner process to the owner set of the given Arena::construct()-ed handle; and returns an opaq...">lend_object()</a>, and <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a7880b205b076ddd46537826d3b2028e9" title="Completes the cross-process operation begun by oppsing Session_mv::lend_object() that returned serial...">borrow_object()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

</div>
</div>
<a id="a26c1d34c7be1002cc9fc8ae9eeae8164" name="a26c1d34c7be1002cc9fc8ae9eeae8164"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26c1d34c7be1002cc9fc8ae9eeae8164">&#9670;&nbsp;</a></span>app_shm_builder_config()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html">Server_session</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a7de5ec3e9331c46664a493e060edb6f6">::Structured_msg_builder_config</a> <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html">ipc::session::shm::arena_lend::jemalloc::Server_session</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::app_shm_builder_config</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns builder config suitable for capnp-serializing out-messages in SHM arena <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a20d4838f6ff705bd2ad33de066ae2d4d" title="Returns SHM Arena with per-app scope, meaning its pool shall be accessible potentially beyond the lif...">app_shm()</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

</div>
</div>
<a id="af9ce191cc25d67c6c098ea56849ef2d5" name="af9ce191cc25d67c6c098ea56849ef2d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9ce191cc25d67c6c098ea56849ef2d5">&#9670;&nbsp;</a></span>app_shm_lender_session()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html">Server_session</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::Structured_msg_builder_config::Builder::Session <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html">ipc::session::shm::arena_lend::jemalloc::Server_session</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::app_shm_lender_session</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>When transmitting items originating in <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a988281add5dc4a31202cfba47f458e5a" title="Short-hand for base class member alias Session_mv::Arena. Its doc header contains useful context and ...">Arena</a> <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a20d4838f6ff705bd2ad33de066ae2d4d" title="Returns SHM Arena with per-app scope, meaning its pool shall be accessible potentially beyond the lif...">app_shm()</a> via <a class="el" href="classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html#a7909a2d1e1d24037fb8af5338fffa783" title="Implements concept API.">transport::struc::shm::Builder::emit_serialization()</a> (and/or <a class="el" href="classipc_1_1transport_1_1struc_1_1Channel.html" title="Owning and wrapping a pre-connected transport::Channel peer (an endpoint of an established channel ov...">transport::struc::Channel</a> send facilities), returns additional-to-payload information necessary to target the opposing process properly. </p>
<p >Internally: Since <code>*this</code> type is based on arena-lending SHM-provider type, this is simply <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#abde9667974bac936135e6a826e856f9a" title="Returns lend/borrow engine Shm_session for *this session.">shm_session()</a>. Generic code of yours should not need to rely on that impl detail, but we mention it for education/context.</p>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

</div>
</div>
<a id="a841ce582dbb9084c7dc934f0d2fbb757" name="a841ce582dbb9084c7dc934f0d2fbb757"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a841ce582dbb9084c7dc934f0d2fbb757">&#9670;&nbsp;</a></span>app_shm_ptr()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt; typename <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html">Server_session</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;<a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a988281add5dc4a31202cfba47f458e5a">::Arena</a> &gt; <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html">ipc::session::shm::arena_lend::jemalloc::Server_session</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt;::app_shm_ptr</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Identical to <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#a20d4838f6ff705bd2ad33de066ae2d4d" title="Returns SHM Arena with per-app scope, meaning its pool shall be accessible potentially beyond the lif...">app_shm()</a> but returns that via a <code>shared_ptr</code>-handle as required for work directly within ipc::shm::arena_lend::jemalloc APIs. </p>
<p >Note this is a quirk of that particular API and, in particular, has no equivalent in <a class="el" href="namespaceipc_1_1session_1_1shm_1_1classic.html" title="Support for SHM-backed ipc::session sessions and session-servers with the SHM-classic (ipc::shm::clas...">ipc::session::shm::classic</a> <code><a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a></code> and <code><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html" title="This is to vanilla Session_server what shm::arena_lend::jemalloc::Server_session is to vanilla Server...">Session_server</a></code> counterparts. It should not be necessary to use except when going beyond <a class="el" href="namespaceipc_1_1session.html" title="Flow-IPC module providing the broad lifecycle and shared-resource organization – via the session conc...">ipc::session</a> for your SHM-arena needs.</p>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="a8fc81db9a5adc7b6efc8529b5f1d98d2" name="a8fc81db9a5adc7b6efc8529b5f1d98d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8fc81db9a5adc7b6efc8529b5f1d98d2">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;session::schema::MqType S_MQ_TYPE_OR_NONE, bool S_TRANSMIT_NATIVE_HANDLES, typename Mdt_payload &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream &amp; operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html">Server_session</a>&lt; S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload &gt; &amp;&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Prints string representation of the given <code><a class="el" href="classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html" title="Identical to session::Server_session in every way, except that it makes available two SHM arenas,...">Server_session</a></code> to the given <code>ostream</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">os</td><td>Stream to which to write. </td></tr>
    <tr><td class="paramname">val</td><td>Object to serialize. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>os</code>. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>session/shm/arena_lend/jemalloc/<a class="el" href="session_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html">jemalloc_fwd.hpp</a></li>
<li>session/shm/arena_lend/jemalloc/<a class="el" href="ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2server__session_8hpp.html">server_session.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 11 2025 20:02:23 for Flow-IPC by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
